exception : made some major improvements#234
exception : made some major improvements#234abdelali221 wants to merge 6 commits intodevkitPro:masterfrom
Conversation
1 - It's now possible to see the last frame rendered by the software. 2 - The way the exception details are displayed was changed, it's more tight now (as per blackb0x's request). 3 - Changed control mapping (as per blackb0x's request as well). 4 - Fixed a bug with the GameCube controller not working if PAD_Init() wasn't called by the software (thanks to DacoTaco who pointed the potential issue).
|
I feel like you could set the framebuffer address when the framebuffer is set |
What do you mean? |
VIDEO_SetNextFramebuffer() could probably include the call to set the framebuffer address the exception handler uses |
|
Well i want the dev to decide whether or not they want to set it. |
Maybe keep the function you made, but have it so you can set it to |
|
@DacoTaco 😴😴 |
DacoTaco
left a comment
There was a problem hiding this comment.
i get the idea, but the code needs a lot of changes and re-evaluations
| VIDEO_SetFramebuffer(exception_xfb); | ||
| __VIClearFramebuffer(exception_xfb, console_height * console_width * VI_DISPLAY_PIX_SZ, COLOR_BLACK); | ||
| __console_init(exception_xfb, 20, 20, console_height-40, console_width-40, 1280); | ||
| __console_init(exception_xfb, 16, 32, console_height-16, console_width-32, 1280); |
There was a problem hiding this comment.
why the change in console size? also, it should be twice the offset to both sides. the 20 was to offset overscan on some screens (meaning its 40 for both sides of the screen)
There was a problem hiding this comment.
Since the characters are 16 pixels high it makes more sense to use a multiple of that instead of 20.
| SYS_ResetSystem(SYS_HOTRESET,0,FALSE); | ||
| #else | ||
| __reload (); | ||
| SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0); |
There was a problem hiding this comment.
this makes it not reload to HBC?
There was a problem hiding this comment.
That's for reset, not reload.
libogc/exception.c
Outdated
| } | ||
|
|
||
| static void __toggleframebuffer() { | ||
| static bool currfb = false; |
There was a problem hiding this comment.
does this work? why keep the variable in the function and not just have it as a global? this looks like a recipe for disaster incase the variable's scope turns into the function, and not outside of it
There was a problem hiding this comment.
Of course, I tested it several times before creating the PR.
There was a problem hiding this comment.
After reconsideration I think it would be better if we compare the XFB pointer with the exception_xfb instead.
|
Please don't merge upstream into forks, it causes issues when merging back to upstream. If you really must update then rebase your fork. |
|
I'm starting to feel like this is pointless. |
|
What I can say though is that I'm currently working on something that would probably be way more useful than this. |
1 - It's now possible to see the last frame rendered by the software.
2 - The way the exception details are displayed was changed, it's more tight now.
3 - Changed control mapping.
4 - Changed how the controls are shown to the user.
5 - Fixed a bug with the GameCube controller not working if PAD_Init() wasn't called by the software (thanks to DacoTaco who pointed the potential issue).